/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.admanager.acmeadmanagement.plugin.acmeadmanagement.impl;

import org.admanager.acmeadmanagement.plugin.acmeadmanagement.AcmeadmanagementFactory;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.AcmeadmanagementPackage;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Attachment;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Binding;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.CBAPattern;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Component;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.ComponentMapping;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.ComponentPortMapping;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.CompositeElement;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Connector;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.ConnectorMapping;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.ConnectorRoleMapping;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Element;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Link;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.MappingRoot;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PComponent;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PComponentPort;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PCompositeElement;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PConnector;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PConnectorRole;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PConstraint;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PElement;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PMultiplicity;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PRole;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PSimpleElement;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Port;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Representation;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Role;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.SimpleElement;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.impl.EFactoryImpl;

import org.eclipse.emf.ecore.plugin.EcorePlugin;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Factory</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class AcmeadmanagementFactoryImpl extends EFactoryImpl implements AcmeadmanagementFactory {
	/**
	 * Creates the default factory implementation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static AcmeadmanagementFactory init() {
		try {
			AcmeadmanagementFactory theAcmeadmanagementFactory = (AcmeadmanagementFactory)EPackage.Registry.INSTANCE.getEFactory("http://acmeadmanagement/1.0"); 
			if (theAcmeadmanagementFactory != null) {
				return theAcmeadmanagementFactory;
			}
		}
		catch (Exception exception) {
			EcorePlugin.INSTANCE.log(exception);
		}
		return new AcmeadmanagementFactoryImpl();
	}

	/**
	 * Creates an instance of the factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public AcmeadmanagementFactoryImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EObject create(EClass eClass) {
		switch (eClass.getClassifierID()) {
			case AcmeadmanagementPackage.PELEMENT: return createPElement();
			case AcmeadmanagementPackage.PROLE: return createPRole();
			case AcmeadmanagementPackage.PMULTIPLICITY: return createPMultiplicity();
			case AcmeadmanagementPackage.PCONSTRAINT: return createPConstraint();
			case AcmeadmanagementPackage.PCOMPOSITE_ELEMENT: return createPCompositeElement();
			case AcmeadmanagementPackage.PSIMPLE_ELEMENT: return createPSimpleElement();
			case AcmeadmanagementPackage.PCOMPONENT: return createPComponent();
			case AcmeadmanagementPackage.PCONNECTOR: return createPConnector();
			case AcmeadmanagementPackage.PCOMPONENT_PORT: return createPComponentPort();
			case AcmeadmanagementPackage.PCONNECTOR_ROLE: return createPConnectorRole();
			case AcmeadmanagementPackage.CBA_PATTERN: return createCBAPattern();
			case AcmeadmanagementPackage.ELEMENT: return createElement();
			case AcmeadmanagementPackage.COMPOSITE_ELEMENT: return createCompositeElement();
			case AcmeadmanagementPackage.SIMPLE_ELEMENT: return createSimpleElement();
			case AcmeadmanagementPackage.COMPONENT: return createComponent();
			case AcmeadmanagementPackage.CONNECTOR: return createConnector();
			case AcmeadmanagementPackage.PORT: return createPort();
			case AcmeadmanagementPackage.ROLE: return createRole();
			case AcmeadmanagementPackage.SYSTEM: return createSystem();
			case AcmeadmanagementPackage.LINK: return createLink();
			case AcmeadmanagementPackage.ATTACHMENT: return createAttachment();
			case AcmeadmanagementPackage.BINDING: return createBinding();
			case AcmeadmanagementPackage.REPRESENTATION: return createRepresentation();
			case AcmeadmanagementPackage.MAPPING_ROOT: return createMappingRoot();
			case AcmeadmanagementPackage.COMPONENT_MAPPING: return createComponentMapping();
			case AcmeadmanagementPackage.CONNECTOR_MAPPING: return createConnectorMapping();
			case AcmeadmanagementPackage.COMPONENT_PORT_MAPPING: return createComponentPortMapping();
			case AcmeadmanagementPackage.CONNECTOR_ROLE_MAPPING: return createConnectorRoleMapping();
			default:
				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
		}
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PElement createPElement() {
		PElementImpl pElement = new PElementImpl();
		return pElement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PRole createPRole() {
		PRoleImpl pRole = new PRoleImpl();
		return pRole;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PMultiplicity createPMultiplicity() {
		PMultiplicityImpl pMultiplicity = new PMultiplicityImpl();
		return pMultiplicity;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PConstraint createPConstraint() {
		PConstraintImpl pConstraint = new PConstraintImpl();
		return pConstraint;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PCompositeElement createPCompositeElement() {
		PCompositeElementImpl pCompositeElement = new PCompositeElementImpl();
		return pCompositeElement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PSimpleElement createPSimpleElement() {
		PSimpleElementImpl pSimpleElement = new PSimpleElementImpl();
		return pSimpleElement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PComponent createPComponent() {
		PComponentImpl pComponent = new PComponentImpl();
		return pComponent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PConnector createPConnector() {
		PConnectorImpl pConnector = new PConnectorImpl();
		return pConnector;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PComponentPort createPComponentPort() {
		PComponentPortImpl pComponentPort = new PComponentPortImpl();
		return pComponentPort;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PConnectorRole createPConnectorRole() {
		PConnectorRoleImpl pConnectorRole = new PConnectorRoleImpl();
		return pConnectorRole;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CBAPattern createCBAPattern() {
		CBAPatternImpl cbaPattern = new CBAPatternImpl();
		return cbaPattern;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Element createElement() {
		ElementImpl element = new ElementImpl();
		return element;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CompositeElement createCompositeElement() {
		CompositeElementImpl compositeElement = new CompositeElementImpl();
		return compositeElement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public SimpleElement createSimpleElement() {
		SimpleElementImpl simpleElement = new SimpleElementImpl();
		return simpleElement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Component createComponent() {
		ComponentImpl component = new ComponentImpl();
		return component;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Connector createConnector() {
		ConnectorImpl connector = new ConnectorImpl();
		return connector;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Port createPort() {
		PortImpl port = new PortImpl();
		return port;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Role createRole() {
		RoleImpl role = new RoleImpl();
		return role;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public org.admanager.acmeadmanagement.plugin.acmeadmanagement.System createSystem() {
		SystemImpl system = new SystemImpl();
		return system;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Link createLink() {
		LinkImpl link = new LinkImpl();
		return link;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Attachment createAttachment() {
		AttachmentImpl attachment = new AttachmentImpl();
		return attachment;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Binding createBinding() {
		BindingImpl binding = new BindingImpl();
		return binding;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Representation createRepresentation() {
		RepresentationImpl representation = new RepresentationImpl();
		return representation;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public MappingRoot createMappingRoot() {
		MappingRootImpl mappingRoot = new MappingRootImpl();
		return mappingRoot;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ComponentMapping createComponentMapping() {
		ComponentMappingImpl componentMapping = new ComponentMappingImpl();
		return componentMapping;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ConnectorMapping createConnectorMapping() {
		ConnectorMappingImpl connectorMapping = new ConnectorMappingImpl();
		return connectorMapping;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ComponentPortMapping createComponentPortMapping() {
		ComponentPortMappingImpl componentPortMapping = new ComponentPortMappingImpl();
		return componentPortMapping;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ConnectorRoleMapping createConnectorRoleMapping() {
		ConnectorRoleMappingImpl connectorRoleMapping = new ConnectorRoleMappingImpl();
		return connectorRoleMapping;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public AcmeadmanagementPackage getAcmeadmanagementPackage() {
		return (AcmeadmanagementPackage)getEPackage();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @deprecated
	 * @generated
	 */
	public static AcmeadmanagementPackage getPackage() {
		return AcmeadmanagementPackage.eINSTANCE;
	}

} //AcmeadmanagementFactoryImpl
